Git Submodules

एक Git रिपॉजिटरी को दूसरे में समाहित करें - उप-रिपॉजिटरी प्रबंधित करें

Git Submodules क्या हैं?

Git submodules Git .

यह उन पुस्तकालयों या निर्भरताओं को जोड़ने के लिए उपयोगी है जिन्हें अलग-अलग रिपॉजिटरी में प्रबंधित किया जाता है, जिससे उनका प्रतिबद्ध इतिहास अद्वितीय रहता है।

सबमॉड्यूल का उपयोग क्यों किया जाना चाहिए?

जब आप चाहें तो सबमॉड्यूल उपयोगी होते हैं:

अन्य प्रोजेक्ट से कोड का पुन: उपयोग करें

किसी अन्य प्रोजेक्ट से कोड का पुन: उपयोग करें

किसी विशिष्ट कमिट में लाइब्रेरी को ट्रैक करें

किसी विशिष्ट प्रतिबद्धता में लाइब्रेरी या निर्भरता को ट्रैक करें

प्रोजेक्ट इतिहास को अद्वितीय रखें

प्रोजेक्ट इतिहास को अद्वितीय रखें

1

सबमॉड्यूल कैसे जोड़ें

अपने प्रोजेक्ट में एक सबमॉड्यूल जोड़ने के लिए, इसका उपयोग करें:

उदाहरण: एक सबमॉड्यूल जोड़ें

git submodule add https://github.com/example/library.git libs/library

यह एक उपनिर्देशिका हैlibs/libraryजानकारी के साथ बनाता है और सबमॉड्यूल करता है.gitmodulesअद्यतन.

2

सबमॉड्यूल के साथ रिपॉजिटरी को कैसे क्लोन करें

जब आप सबमॉड्यूल वाले भंडार को क्लोन करते हैं, तो आपको उनकी सामग्री को विशिष्ट रूप से प्राप्त करने की आवश्यकता होती है:

उदाहरण: सबमॉड्यूल को प्रारंभ और अद्यतन करें

git submodule init
git submodule update

या क्लोनिंग करते समय यह सब एक साथ करें:

उदाहरण: सबमॉड्यूल के साथ क्लोन

git clone --recurse-submodules https://github.com/user/repo.git
3

सबमॉड्यूल स्थिति की जांच कैसे करें

अपने सबमॉड्यूल की वर्तमान प्रतिबद्धता और स्थिति देखने के लिए, इसका उपयोग करें:

उदाहरण: सबमॉड्यूल स्तर

git submodule status
4

सभी सबमॉड्यूल में कमांड कैसे चलाएं

प्रत्येक सबमॉड्यूल एक कमांड चला सकता है। उदाहरण के लिए, उनकी स्थिति जांचें:

उदाहरण: foreach

git submodule foreach git status
5

सबमॉड्यूल को कैसे अपडेट करें

सबमॉड्यूल को उनके दूरस्थ रिपॉजिटरी से नवीनतम कमिट में अपडेट करने के लिए:

उदाहरण: सभी सबमॉड्यूल अपडेट करें

git submodule update --remote
6

किसी सबमॉड्यूल को कैसे हटाएं

किसी सबमॉड्यूल को हटाने के लिए:

.gitmodules के बारे में

.gitmodulesफ़ाइल सभी सबमॉड्यूल और उनके पथों का ट्रैक रखती है। यदि आप सबमॉड्यूल को स्थानांतरित करते हैं या हटाते हैं तो इस फ़ाइल को संपादित करें।

उदाहरण: .gitmodules फ़ाइल

[submodule "libs/library"]
  path = libs/library
  url = https://github.com/example/library.git

समस्या निवारण और सर्वोत्तम अभ्यास

यदि क्लोनिंग के बाद सबमॉड्यूल खाली हैं

git submodule update --init --recursiveचालू करो

यदि आप सबमॉड्यूल का URL बदलते हैं

.gitmodulesऔर.git/configदोनों को अपडेट करें

सबमॉड्यूल हमेशा एक विशिष्ट प्रतिबद्धता की ओर इशारा करते हैं

सबमॉड्यूल हमेशा एक विशिष्ट प्रतिबद्धता की ओर इशारा करते हैं, कभी भी नवीनतम प्रतिबद्धता की ओर नहीं - यदि आप नए परिवर्तन चाहते हैं तो अपडेट करना याद रखें

बाहरी परियोजनाओं के लिए जो मानक संस्करण की निगरानी करना चाहते हैं

उन बाहरी परियोजनाओं के लिए सबमॉड्यूल रखें जिन्हें आप मानक संस्करण में ट्रैक करना चाहते हैं। सरल आवश्यकताओं के लिए, Git सबट्री या फ़ाइलों की प्रतिलिपि बनाने जैसे परिवर्तनों पर विचार करें

महत्वपूर्ण नोट

📝जस्सिफ टीम नोट

सबमॉड्यूल शक्तिशाली हैं, लेकिन प्रबंधन करना कठिन है।

किसी अन्य प्रोजेक्ट को किसी विशिष्ट कमिट में ट्रैक करने के लिए।

सबमॉड्यूल जटिल प्रोजेक्ट सेटअप के लिए बहुत अच्छे हैं, लेकिन सरल आवश्यकताओं के लिए विकल्पों पर विचार करें।

त्वरित संदर्भ

सबमॉड्यूल जोड़ें

नया सबमॉड्यूल

git submodule add URL

सबमॉड्यूल के साथ क्लोन

सभी सबमॉड्यूल के साथ

git clone --recurse-submodules

सबमॉड्यूल अपडेट करें

हालिया बदलाव

git submodule update --remote

स्थिति जाँचिए

सबमॉड्यूल स्तर

git submodule status